<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta http-equiv="cache-control" content="no-cache">
<title>reflex::Pattern::Tree Struct Reference</title>
<link href="doxygen_tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="doxygen_content.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
 <div id="titlearea">
  <table height="72px" width="100%" cellspacing="0" cellpadding="0">
   <tbody>
    <tr>
     <td width="10%">&nbsp;</td>
     <td><a href="https://github.com/Genivia/RE-flex"><img src="reflex-logo.png"/></a></td>
     <td>
      <div style="float: right; font-size: 18px; font-weight: bold;">reflex::Pattern::Tree Struct Reference</div>
      <br>
      <div style="float: right; font-size: 10px;">updated Thu May 14 2020 by Robert van Engelen</div>
     </td>
     <td width="10%">&nbsp;</td>
    </tr>
   </tbody>
  </table>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacereflex.html">reflex</a></li><li class="navelem"><a class="el" href="classreflex_1_1_pattern.html">Pattern</a></li><li class="navelem"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html">Tree</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="structreflex_1_1_pattern_1_1_tree-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">reflex::Pattern::Tree Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="structreflex_1_1_pattern_1_1_tree.html" title="Tree DFA constructed from string patterns. ">Tree</a> <a class="el" href="structreflex_1_1_pattern_1_1_d_f_a.html" title="DFA created by subset construction from regex patterns. ">DFA</a> constructed from string patterns.  
 <a href="structreflex_1_1_pattern_1_1_tree.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for reflex::Pattern::Tree:</div>
<div class="dyncontent">
<div class="center"><img src="structreflex_1_1_pattern_1_1_tree__coll__graph.png" border="0" usemap="#reflex_1_1_pattern_1_1_tree_coll__map" alt="Collaboration graph"/></div>
<map name="reflex_1_1_pattern_1_1_tree_coll__map" id="reflex_1_1_pattern_1_1_tree_coll__map">
<area shape="rect" id="node2" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html" title="reflex::Pattern::Tree\l::Node" alt="" coords="5,5,145,47"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2d8d745454dbf352ff9d84154cbd9ada"><td class="memItemLeft" align="right" valign="top">typedef std::list&lt; <a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a2d8d745454dbf352ff9d84154cbd9ada">List</a></td></tr>
<tr class="separator:a2d8d745454dbf352ff9d84154cbd9ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7f385609c53bdb8e6bacda9fed18939d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a7f385609c53bdb8e6bacda9fed18939d">Tree</a> ()</td></tr>
<tr class="separator:a7f385609c53bdb8e6bacda9fed18939d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d47f3895979e859a478ab73dca4c8c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a3d47f3895979e859a478ab73dca4c8c5">~Tree</a> ()</td></tr>
<tr class="separator:a3d47f3895979e859a478ab73dca4c8c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad851484b84e134a7551488cd562dd3e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#ad851484b84e134a7551488cd562dd3e6">clear</a> ()</td></tr>
<tr class="memdesc:ad851484b84e134a7551488cd562dd3e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">delete the tree <a class="el" href="structreflex_1_1_pattern_1_1_d_f_a.html" title="DFA created by subset construction from regex patterns. ">DFA</a>.  <a href="#ad851484b84e134a7551488cd562dd3e6">More...</a><br /></td></tr>
<tr class="separator:ad851484b84e134a7551488cd562dd3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a742606c757797e6333997b4700b93da4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a742606c757797e6333997b4700b93da4">root</a> ()</td></tr>
<tr class="memdesc:a742606c757797e6333997b4700b93da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the root of the tree.  <a href="#a742606c757797e6333997b4700b93da4">More...</a><br /></td></tr>
<tr class="separator:a742606c757797e6333997b4700b93da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af78c9bad2559a82ccf1bc05bbde122ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#af78c9bad2559a82ccf1bc05bbde122ae">edge</a> (<a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *node, <a class="el" href="classreflex_1_1_pattern.html#a1d74385d9faa9b77a0fd17614a17d3b1">Char</a> c)</td></tr>
<tr class="memdesc:af78c9bad2559a82ccf1bc05bbde122ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an edge from a tree node to a target tree node, return the target tree node.  <a href="#af78c9bad2559a82ccf1bc05bbde122ae">More...</a><br /></td></tr>
<tr class="separator:af78c9bad2559a82ccf1bc05bbde122ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7af81148b27d6724518b52f07e7105a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#ac7af81148b27d6724518b52f07e7105a">leaf</a> ()</td></tr>
<tr class="memdesc:ac7af81148b27d6724518b52f07e7105a"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a new leaf node.  <a href="#ac7af81148b27d6724518b52f07e7105a">More...</a><br /></td></tr>
<tr class="separator:ac7af81148b27d6724518b52f07e7105a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a9f88c501d251108b05753eb19a204a45"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a9f88c501d251108b05753eb19a204a45">tree</a></td></tr>
<tr class="memdesc:a9f88c501d251108b05753eb19a204a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">root of the tree or NULL  <a href="#a9f88c501d251108b05753eb19a204a45">More...</a><br /></td></tr>
<tr class="separator:a9f88c501d251108b05753eb19a204a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52831640654e4d92870b96a64c9d7b59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a2d8d745454dbf352ff9d84154cbd9ada">List</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a52831640654e4d92870b96a64c9d7b59">list</a></td></tr>
<tr class="memdesc:a52831640654e4d92870b96a64c9d7b59"><td class="mdescLeft">&#160;</td><td class="mdescRight">block allocation list  <a href="#a52831640654e4d92870b96a64c9d7b59">More...</a><br /></td></tr>
<tr class="separator:a52831640654e4d92870b96a64c9d7b59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc9f4bea248144dee13833b4d59ebbea"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#afc9f4bea248144dee13833b4d59ebbea">next</a></td></tr>
<tr class="memdesc:afc9f4bea248144dee13833b4d59ebbea"><td class="mdescLeft">&#160;</td><td class="mdescRight">block allocation, next available slot in last block  <a href="#afc9f4bea248144dee13833b4d59ebbea">More...</a><br /></td></tr>
<tr class="separator:afc9f4bea248144dee13833b4d59ebbea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:af3b84b41f82594cd8fcfb8bbf0c86c4f"><td class="memItemLeft" align="right" valign="top">static const uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#af3b84b41f82594cd8fcfb8bbf0c86c4f">ALLOC</a> = 64</td></tr>
<tr class="memdesc:af3b84b41f82594cd8fcfb8bbf0c86c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">allocate 64 nodes at a time, to improve performance  <a href="#af3b84b41f82594cd8fcfb8bbf0c86c4f">More...</a><br /></td></tr>
<tr class="separator:af3b84b41f82594cd8fcfb8bbf0c86c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="structreflex_1_1_pattern_1_1_tree.html" title="Tree DFA constructed from string patterns. ">Tree</a> <a class="el" href="structreflex_1_1_pattern_1_1_d_f_a.html" title="DFA created by subset construction from regex patterns. ">DFA</a> constructed from string patterns. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a2d8d745454dbf352ff9d84154cbd9ada"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::list&lt;<a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a>*&gt; <a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a2d8d745454dbf352ff9d84154cbd9ada">reflex::Pattern::Tree::List</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7f385609c53bdb8e6bacda9fed18939d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">reflex::Pattern::Tree::Tree </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3d47f3895979e859a478ab73dca4c8c5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">reflex::Pattern::Tree::~Tree </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad851484b84e134a7551488cd562dd3e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void reflex::Pattern::Tree::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>delete the tree <a class="el" href="structreflex_1_1_pattern_1_1_d_f_a.html" title="DFA created by subset construction from regex patterns. ">DFA</a>. </p>

</div>
</div>
<a class="anchor" id="af78c9bad2559a82ccf1bc05bbde122ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a>* reflex::Pattern::Tree::edge </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a> *&#160;</td>
          <td class="paramname"><em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classreflex_1_1_pattern.html#a1d74385d9faa9b77a0fd17614a17d3b1">Char</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>create an edge from a tree node to a target tree node, return the target tree node. </p>

</div>
</div>
<a class="anchor" id="ac7af81148b27d6724518b52f07e7105a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a>* reflex::Pattern::Tree::leaf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>create a new leaf node. </p>

</div>
</div>
<a class="anchor" id="a742606c757797e6333997b4700b93da4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a>* reflex::Pattern::Tree::root </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the root of the tree. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="af3b84b41f82594cd8fcfb8bbf0c86c4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint16_t reflex::Pattern::Tree::ALLOC = 64</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>allocate 64 nodes at a time, to improve performance </p>

</div>
</div>
<a class="anchor" id="a52831640654e4d92870b96a64c9d7b59"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structreflex_1_1_pattern_1_1_tree.html#a2d8d745454dbf352ff9d84154cbd9ada">List</a> reflex::Pattern::Tree::list</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>block allocation list </p>

</div>
</div>
<a class="anchor" id="afc9f4bea248144dee13833b4d59ebbea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t reflex::Pattern::Tree::next</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>block allocation, next available slot in last block </p>

</div>
</div>
<a class="anchor" id="a9f88c501d251108b05753eb19a204a45"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structreflex_1_1_pattern_1_1_tree_1_1_node.html">Node</a>* reflex::Pattern::Tree::tree</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>root of the tree or NULL </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="pattern_8h.html">pattern.h</a></li>
</ul>
</div><!-- contents -->
<hr class="footer">
<address class="footer"><small>
Converted on Thu May 14 2020 13:20:14 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.11</small></address>
<br>
<div style="height: 246px; background: #DBDBDB;">
</body>
</html>
